home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-16 | 50.1 KB | 1,052 lines |
-
- ----------------------------------------------------------------
-
- BATCH FILES FOR EFFICIENCY - GETTING REAL WORK DONE
-
- ----------------------------------------------------------------
-
- Batch files are one of the hidden treasures within your
- computer. Let's face it, learning and using DOS commands is a
- test of patience, memory and stamina. Batch files are the secret
- weapon which can boost your computer into the fast lane of work
- productivity.
-
- Batch files are small software programs which you can prepare in
- the space of only five or ten minutes which automate a variety
- of tasks and customize the computer to your work style. The
- bottom line is that batch files can preserve your sanity in the
- face of arcane, easily-forgotten DOS commands to provide you
- with a menu system for your hard drive, transfer and backup
- files, provide security, start other software programs, activate
- your printer and much more.
-
- Amazingly, batch files require that you become familiar with
- only eight commands in addition to the normal DOS commands.
- Working with batch files means you are programming in the most
- literal sense - let's take a tour of the small miracles called
- batch files . . .
-
- A batch file is little more than a list of DOS commands plus
- eight special batch commands. These commands are stored on your
- floppy or hard disk in an ordinary text file such as produced by
- your word processor or text editor. If you can type a letter to
- a friend, you can prepare a batch file!
-
- Several time-saving batch file examples which provide real work
- power to your everyday computer problems are presented at the
- end of this tutorial. We will also examine the eight basic batch
- file commands as well as the AUTOEXEC.BAT file which starts your
- computer each morning. In addition we will present some simple
- tricks for managing your printer with batch files.
-
- One way to think about a batch file is that it takes the
- place of your keyboard and issues commands one after another
- until it reaches a conclusion. Batch files operate line by line
- and are read directly from the disk which makes them a little
- slow, but nevertheless useful and flexible. You can eliminate
- repetitious keyboard tasks by using batch files. Let's look at a
- short batch file . . .
-
- Each line of a batch file contains one instruction or operation
- per line which the computer is to perform. Below is the listing
- of a simple batch file example. Don't worry about understanding
- it yet, simply note that each instruction is a DOS command on a
- separate line. The list in the left column is the actual batch
- file, while the explanation in the right column is NOT part of
- the batch file, only a helpful column of comments.
-
- EXAMPLE BATCH FILE EXPLANATION
- | |
- date date displayed
- time time displayed
- ver DOS version displayed
- dir a:/p directory of a: floppy
- displayed with a pause
-
- The primary use of batch files is to automate sequences or
- instructions which you use frequently. A batch file always has
- the extension BAT. A batch file might for instance be named
- MENU.BAT, CAR.BAT, INSTALL.BAT or MONEY.BAT.
-
- Each line in a batch file is a separate command and is performed
- in sequence as if you had typed in the command from your
- keyboard at the DOS prompt. In addition to the usual DOS
- commands, batch files can also contain additional special
- commands to provide truly sophisticated program structures which
- include decision branching and even repetitions of commands.
- In addition, batch files may have special parameters or inputs
- passed to them at the time you run the batch file from the DOS
- command line or prompt.
-
- A batch file is run or started by typing the file name without
- the extension. This of course also applies to files ending with
- file extensions EXE or COM as well as BAT.
-
- Example: A>hello (Then pressing enter or return key)
- This starts the file hello.bat hello.com or hello.exe
-
- Example: C>whoops (Then pressing enter or return key)
- This starts the file whoops.exe whoops.bat or whoops.com
-
- There are several ways to abort or terminate any batch file in
- progress. 1) Issue the break command which uses the two key
- combination CONTROL-BREAK (hold down the control or CTRL key
- then press the break key) or you can 2) Tap CTRL-SCROLL LOCK
- keys or 3) Tap CTRL-C keys.
-
- There are many ways to prepare a batch file, all of which use
- simple methods of text editing or word processing: 1) Use the
- DOS COPY CON (copy console) command. 2) Use the older EDLIN line
- editor available within older versions of DOS. 3) Use the newer
- DOS EDIT text editor available in DOS version 5.0 and 6.0. This
- is probably the most convenient. 4) Or use any word processor
- (e.g., Microsoft Word, Wordperfect, PC-Write) whose output has
- been set to ASCII or pure text output - many word processors use
- a "save as" file option to select pure ASCII output. See your
- word processor reference book index under ASCII file saving.
-
- Let's prepare a batch file:
-
- First make sure you have a formatted disk in your disk drive and
- DOS is displaying a DOS prompt such as A> or C>. We need a disk
- in order to save our batch file.
-
- We will be using the command COPY CON (copy data from the
- CONsole) command. We could also use any ASCII (plain english)
- text word processor (e.g., Wordperfect) or even EDLIN on your
- DOS disk. Note that you can use either upper or lower case to
- prepare batch files (capitals or small letters.) Using COPY CON
- is like using a small typewriter to prepare your batch file.
-
- Type the following list carefully at the DOS prompt:
-
- copy con blink.bat (press enter - cursor skips to new line)
- echo Hello there (press enter)
- ver (press enter)
- date (press enter)
- dir/p (press enter)
- ^Z (press F6 OR your can press control key
- AND Z key, then press enter)
-
- When done, you'll have prepared a batch file of DOS commands
- named blink.bat. Run the batch file by typing this at the DOS
- prompt:
- blink (then press enter key)
-
- Although using the COPY CON method method of preparing a batch
- file works, users of DOS 5.0 and 6.0 will find it more
- convenient to use the built in DOS "miniword processor" called
- EDIT. Just type the command EDIT <then press enter/return key>
- to load EDIT. Then use the convenient popdown menus within EDIT
- to create a file or load a file from the disk.
-
- WARNING! Be careful when preparing batch files since you will
- automatically overwrite and destroy any PREXISTING batch files
- of the same name! It may be better to make a backup copy of the
- existing batch file (or rename it temporarily with the REN
- command) and then proceed. A classic beginner mistake is to
- tinker with the crucial AUTOEXEC.BAT file without saving a
- backup copy first! If you destroy AUTOEXEC.BAT with your
- tinkering, you can replace it with your known good copy. More
- about AUTOEXEC.BAT later in this tutorial.
-
- We could also have named the batch file above hello.bat or
- info.bat rather than blink.bat by changing the first line we
- typed, but for simplicity we'll stick with blink.bat which does
- the following chores: Print "hello there" on the screen, then
- type the DOS version in use then display date and finally
- produce a directory listing with pause after each screenful. At
- this point the batch file ends and returns you to DOS. In the
- first line we use COPY CON as our small word processor to begin
- construction of the batch file named blink.bat. In the last line
- the ^Z means end of batch file preparation - exit back to DOS
- and save the file on disk.
-
- Another example batch file for you to try, let's call it F.BAT
- This is a reminder that F.BAT refers to formatting a disk:
-
- echo off
- copy con f.bat
- cls
- pause
- format b:
- echo all done
-
- Notice that here I have omitted the COPY CON command to start
- file preparation and the F6 to end file preparation. Use the
- COPY CON method described above if you wish or whatever word
- processing software is available to construct the file.
-
- This batch file (activated by typing f then enter) will clear
- the screen then prepare to format a blank disk in b: drive.
- NOTE: you MUST have FORMAT.COM, the DOS formatting utility, on
- the same disk as the batch file, f.bat - remember that format is
- an EXTERNAL command and f.bat will try to find FORMAT.COM.
-
- After the batch file has formatted the disk it prints "all done"
- on the screen. So instead of LOTS of keystrokes to format a
- disk, you just tap "F" then hit enter and the batch file runs.
- See how we are saving keystrokes - that's one of the purposes of
- a batch file! We will discuss the new ECHO command a little
- later in this tutorial.
-
- A reminder: Ctrl-Break or Ctrl-C key combination will halt
- any batch file operation if you wish.
-
- The next batch file might be used to backup word processing data
- files from your hard drive onto a floppy disk. Let's make an
- initial assumption that your word processing documents are
- stored on your hard drive in the subdirectory C:\DOC. You could
- name this backup batch file B.BAT and when you need to backup
- simply type B (then press enter) at the DOS prompt. We've
- omitted the copy con command at the top of the file and the ^Z
- at the end of the file since you already know how to start and
- end a batch file from previous examples. Note the new commands
- we are using: ECHO and PAUSE which we will discuss shortly.
-
- ECHO OFF
- ECHO This batch file backs up DOCUMENT files to disk B:
- ECHO READY TO BACKUP.
- PAUSE
- COPY C:\DOC\*.* B:
- ECHO All done!
-
- The line which does most of the work is COPY C:\DOC\*.* B:
- which translates as "copy all files from C:\DOC subdirectory
- and transfer them to B: drive."
-
- One batch file can start or call another, but the original batch
- file cannot usually be returned to - you must continue on within
- the second batch file. For example, you could have one batch
- file start another batch file.
-
- If a batch file contains a typing or syntax error in any of its
- commands, the computer will stop execution at that point and
- return you to DOS which remembers which disk contains the batch
- file and the drive it was in. If you remove the original disk,
- DOS will ask you to replace it so it can finish executing the
- batch file. Batch files execute one step at a time from the disk
- and NOT from RAM memory. This disk-based nature of batch files
- make them a little slow, but they get the work done in
- reasonably short order for most people.
-
- Several books and power user tricks should also be mentioned
- regarding batch files before we move on . . .
-
- A superlative book on batch files you might wish to investigate
- is MOS-DOS Batch File programming by Ronny Richardson, 1988,
- Wincrest Books.
-
- You should also investigate the SEBFU (Scanlon Enterprises Batch
- File Utilities) software package which is a series of small
- batch file utilities which offer an improvement over the
- standalone DOS batch file programming language. SEBFU allows the
- user to produce subtle, powerful batch files and includes an
- excellent tutorial about using batch files for productivity. If
- you wish to try SEBFU, the shareware version, contact Scanlon
- Enterprises, 38354 17th ST E #C, Palmdale, CA 93550 Telephone
- (805) 272-4827. Include five dollars for shipping and handling.
-
- Special batch file COMPILER utilities exist which speed
- execution of batch files and make them run from RAM memory
- rather than disk. Most computer clubs and BBS system carry these
- batch file compilers. One popular batch compiler is named
- BAT2EXEC and was produced by PC Magazine several years ago.
- Batch files will FLY once they have been compiled and run
- from memory rather than disk. Another batch file speedup trick
- uses a "ramdisk" as follows.
-
- Remember the DOS VDISK command in our second DOS tutorial? Many
- DOS experts put commonly used batch files in a virtual or RAM
- disk in memory where a batch file runs quickly. This is one
- trick which can turbocharge batch file operations.
-
- ----------------------------------------------------------------
-
- AUTOEXEC.BAT FILE BASICS - THE WAKEUP CALL TO YOUR COMPUTER
-
- ----------------------------------------------------------------
-
- The AUTOEXEC.BAT file starts your computer exactly the way you
- want. It allows you to customize the machine to your liking as
- the computer comes to life. You can cause the AUTOEXEC.BAT file
- to print a startup menu of choices, load one particular program,
- execute another batch file or other useful tasks. The
- AUTOEXEC.BAT file is the first file DOS runs after loading
- itself and configuring the computer. The AUTOEXEC.BAT file must
- be on the same disk as DOS when the computer starts.
-
- The AUTOEXEC.BAT file is a special batch file which MUST be
- placed in the main or root directory of a disk to function
- properly.
-
- An AUTOEXEC.BAT file can always be modified, enlarged, edited,
- or deleted later as you wish. Sometimes it is useful to have
- several AUTOEXEC.BAT files. Each on a different startup disk to
- operate different programs! An AUTOEXEC.BAT file, like all batch
- files, can be modified with any word processor, DOS EDIT or
- EDLIN text editor.
-
- Before tinkering with your AUTOEXEC.BAT file, make sure you do
- not accidentally over-write or destroy your current AUTOEXEC.BAT
- file. If necessary, rename your current AUTOEXEC.BAT file (using
- the rename or REN command) and make a new file while saving the
- old one "just in case." Never edit files on your original DOS disk,
- work on a copy! This wise advice applies to ANY computer file.
- Save a backup copy; never work on the original.
-
- Examine the next batch file:
-
- copy con AUTOEXEC.BAT (press enter)
- 123 (press enter)
- ^Z (press enter)
-
- This means (first line) create a file named AUTOEXEC.BAT as
- typed from the keyboard or con (console). Then (second line)
- start program named 123. The (final line) end of batch file
- preparation - stash it on the disk. Since the first and last
- lines prepare the batch file, this program really has only one
- line whose purpose is to start a specific program (123.EXE) each
- time the computer is turned on.
-
- When finished you'll see a file named AUTOEXEC.BAT on your
- directory listing screen which contains automatic startup
- instructions. If this file were placed on your main DOS disk it
- would try to start a program such as 123.EXE if such a program
- existed there. And since it is AUTOEXEC.BAT this would be the
- first file run each morning when you turn on your computer.
-
- You can also start the AUTOEXEC.BAT by typing autoexec and then
- pressing enter. To take a "peek" at the contents of an
- AUTOEXEC.BAT file (or any bat file) simply use the type command.
- Remember to use Ctrl-S key combination to pause the screen if
- the display flashes by too quickly.
-
- Example: C>type AUTOEXEC.BAT (display file contents)
- Example: A>type b:AUTOEXEC.BAT (display file on the B: drive)
- Example: C>type AUTOEXEC.BAT>PRN (display file contents on
- printer)
-
- Here is another AUTOEXEC.BAT file, this time from a computer
- equipped with a hard drive. This example provides a higher
- degree of control and direction that a computer user might need
- for hard drive customization.
-
- path \dos;\reflex;\wp;\util;\doc;\nor;\bat
- prompt $P$G
- cpu n
- verify on
- blank
- mode bw80,r
- dispclk
- type menu.txt
-
- Let's examine this more complicated AUTOEXEC.BAT file in greater
- detail:
-
- The first line after establishes a path command to help DOS
- search every subdirectory on the hard disk -you don't have to
- switch around to different areas of the disk, DOS will search
- for you since it knows the various subdirectory "paths" to take.
-
- The second line alters the cursor prompt to always display your
- current location and subdirectory. Instead of seeing C> you view
- a more informative C:\DOCS> for example.
-
- The third line is a reference to the speed the computer will
- operate at and is a unique command to a particular brand of
- machine (cpu n means start the central processing unit chip at
- normal speed.) Cpu is really CPU.COM, an external file which
- sets the computer's processing speed. Your DOS disk may or may
- not contain the file CPU.COM. This highlights the ability of the
- AUTOEXEC.BAT file to start or load other programs and is
- very useful!
-
- The fourth line turns on the verify function for file copying.
-
- The next line instructs the DOS mode function to switch to black
- and white display, 80 columns wide and shift one column to the
- right for alignment. We are setting the hardware the way we
- wish. We could also configure the modem or printer with the mode
- command.
-
- Next we ask DOS to tell us the time and date. Run the program
- DISPCLK.COM, an external program stored on disk.
-
- The final line instructs DOS to type to the screen a text file
- containing a simple menu for the monitor to display. Menu.txt
- probably gives us choices of programs and thus calls other batch
- files.
-
- ----------------------------------------------------------------
-
- BATCH FILE COMMANDS AND USE
-
- ----------------------------------------------------------------
-
- In addition to the normal DOS commands, batch files have eight
- special subcommands. At the end of this section we will provide
- some interesting batch files which you can use or edit on your
- computer.
-
- The special batch commands are:
-
- --- REM --- The REM command simply documents or notes a part of
- a batch file's operation for your reference. You should use REM
- extensively to document long detailed batch files so you can
- locate portions of the program if you decide to change the batch
- file later. Remarks can be up to 123 characters long. REM does
- not cause any operation, it merely documents what you want to
- say or do.
-
- Example: C>REM this is the location of menu operations
-
- In DOS 2.0 the REM command could be replaced with a period or
- dot, but this is not true in DOS 3.0 and above.
-
- Example: C>. this is the location of menu operations
-
- --- PAUSE --- Stops batch file execution on a temporary basis
- until you press a key. Thus you can pause a batch file and do
- some operation (perhaps changing a floppy disk) and then
- continue when you strike a key. Very useful.
-
- Example: B>PAUSE
- Example: B>PAUSE This is an optional message, pardner!
-
- In the first example, no message is displayed.
-
- --- ECHO --- Turns display listing of commands on/off. It can
- also send a message to the screen. It is frequently turned off
- to remove excessive screen messages. Normally, with ECHO on,
- screen messages are sent to the screen which can be distracting.
- To suppress them use the first example. To restart the messages
- use the second example. To add a message with the ECHO command
- see example three. REM or remark command can also send a message
- to the screen but NOT with ECHO turned off!
-
- Example: A>ECHO OFF
- Example: A>ECHO ON
- Example: A>ECHO It's raining cats, dogs and computers
- Example: A>@ECHO (don't display this particular line)
-
- --- PARAMETERS AND MARKERS ---- This is NOT a batch file
- command like ECHO or PAUSE.
-
- Instead parameters are additional pieces of information or
- "modifiers" which follow DOS commands.
-
- Example: C>format b:/s
-
- In the above, format is the command while b: and /s are the
- parameters. Parameters modify the basic operation of a DOS
- command but are not required by the command to operate. A batch
- file can also accept parameters such as a word, filename,
- symbol, drive letter or any useful character or group of
- characters!
-
- Markers placed inside the batch file listing signify which
- parameter goes where. Markers are made from a percent sign (%)
- and a single digit between 0 and 9 for a total of ten markers
- available (remember, zero is a number too.) Here are the ten
- markers:
-
- %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
-
- Let's use an example. Pretend that DOLITTLE.BAT is on your
- floppy. Within its listing of commands there might be this
- single line:
-
- ECHO %0 %1 %2 (ECHO shows messages on the monitor)
-
- If at the DOS prompt you typed:
-
- B>DOLITTLE fancy pants (then press enter)
-
- Your screen would show the following:
-
- ECHO DOLITTLE fancy pants.
-
- In this case, %0 has taken on the value at the start of the DOS
- command which is the first word "DOLITTLE". Meanwhile %1 has
- become "fancy" and %2 is now pants.
-
- Looking at this another way:
-
- DOLITTLE fancy pants
- | | |
- ECHO %0 %1 %2
-
- Let's try a more useful example. Pretend you had a large file of
- word processing files containing bills you have to pay from time to
- time.
-
- You need to look up bills or amounts in the file accounts.txt
- which is in plain ASCII (english) text from your word processor.
-
- The DOS FIND utility can search large files for specific words,
- strings or characters. The general format for the FIND command
- is: FIND "text" filename. FIND is located in the file FIND.COM
- on your DOS disk and must be present with the batch file to be
- used.
-
- A simple batch file possibly named GET.BAT could do this:
-
- ECHO OFF
- ECHO searching for data . . . .
- FIND "%1" %2
- ECHO Finished, boss
-
- Start the batch file get.bat with search data like this:
-
- C>get grocery accounts.txt (first word starts get.bat, second
- word is the item to search for, third item is the file to
- search.)
-
- As a result, you will get a report of the line where the word
- "grocery" is found within the file accounts.txt. This could also
- be used to search a telephone list or list of employee names and
- addresses. A powerful idea for a short batch file!
-
- --- GOTO --- Jumps to a labeled set of commands within the
- batch file. The general format for the command is GOTO LABEL
- where LABEL is a line in the batch file which must start with a
- colon (:) followed by a name up to eight characters long.
-
- A simple, but useless batch file illustrates the GOTO command by
- looping around in circles doing the same task endlessly.
-
- Example listing for batch file:
-
- ECHO OFF
- :kitty
- ECHO watch this fill your screen over and over, folks
- GOTO kitty
-
- Note! On some versions of DOS it is necessary to include one blank
- line at the end of this file. In the above example, just press
- Enter/Return key one extra time after the line "GOTO kitty"
- and then save the batch file.
-
- The above batch file will continue to print the ECHO line over
- and over since it always returns to the start. Tap Ctrl-Break to
- stop this silliness. The true usefulness of the GOTO command is
- best understood by allowing the GOTO within a batch file to
- transfer control elsewhere within its listing rather than to the
- line immediately next in sequence. You can thus cause varying
- useful results depending on a conditions present. Choices and
- different outcomes are a trademark of savvy batch file use.
-
- --- IF --- Allows conditional operation of a command. This is a
- fancy way of saying you can cause a batch file to make decisions
- based on a logical condition or input then do something. The
- usual syntax of the IF command is IF CONDITION COMMAND. Let's
- take this apart and examine the concept.
-
- In the situation IF CONDITION COMMAND:
-
- COMMAND is any normal DOS or batch file command and CONDITION is
- one of three possible tests that yield true or false.
-
- Example: IF %1==w GOTO dog (we'll explain this in a bit)
- Example: IF %3 == 80 MODE BW80 (we'll explain this in a bit)
-
- The three possible tests are:
-
- 1. The ERRORLEVEL condition (i.e., a specific number is found).
- 2. The STRING COMPARISON. (i.e., two strings are equivalent or
- not.)
- 3. The FILE EXISTENCE condition. (i.e., if a file exists or not.)
-
- In true full-featured programming languages many other logical
- tests might be allowed, but for batch files these are the
- only three tests. Let's examine the three more closely. Then
- illustrate with an example.
-
- 1. ERRORLEVEL is a number which tells DOS whether the last
- program run was successful. If so the errorlevel is zero (0)
- anything else above zero means unsuccessful.
-
- 2. STRING COMPARISON, the second conditional test, is always
- indicated in a batch file by double equals signs (==). A test is
- designated by the condition IF string1 == string2. This is
- frequently used with parameters or markers such as: IF %3 == 80
- MODE BW80.
-
- 3. In the final and third conditional test, FILE EXISTENCE, the
- usual format is IF EXIST d:filename.ext. which checks for a
- certain file on a certain drive. You can thus check for a
- certain disk or file before continuing the batch file process.
- Pathnames are not allowed (d:\slip\and\slide).
-
- Let's try a batch file example to illustrate the use of STRING
- COMPARISONS to make a choice in how the batch file does its
- work. In a way, this is a menu program. Pretend you have two
- software applications. One is a word processor named WORD.EXE
- whose command to start is WORD and the other is a spreadsheet
- named LOTUS.EXE whose command is LOTUS to start.
-
- If we prepared a simple batch file called go.bat whose listing is
- below, we could start one or the other program by using either
- the command:
-
- A>go w (to start the word processor)
-
- OR THIS:
-
- A>go s (to start the spreadsheet).
-
- Notice how the "w" or "s" is picked up by the batch file and
- sends the program either one direction or the other in the
- example below. The remarks lines which begin with REM in the
- batch file give you a clue about the operation of the program
- but are not themselves commands. The end result of this batch
- file is a saving of keystrokes for frequently used software (the
- word processor and spreadsheet) and could be expanded to start
- many other software packages.
-
- REM This batch file selects one of two choices based on input
- REM The next line turns off screen echo to avoid screen clutter
- ECHO OFF
- REM Begin test for one of two choices
- REM Next two lines use percent signs as markers for "w" or "s" keys
- IF %1==w GOTO dog
- IF %1==s GOTO cat
- REM Next line forces goto end if no match is made for w or s
- GOTO end
- :dog
- REM Next command starts word processor, WORD.EXE
- WORD
- GOTO end
- :cat
- REM Next command starts spreadsheet, LOTUS.EXE
- LOTUS
- GOTO end
- :end
- REM Next line switches to root directory and ends the batch file
- CD\
- ECHO Batch file done, bye bye!
-
- --- SHIFT --- Re-assigns the relationship of parameters to
- markers. It changes their values. And it does it in a very odd
- way . . .
-
- Remember that there are only ten markers available to a batch
- file to hold the parameter values as we mentioned above. Here
- they are:
-
- %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
-
- However you can raise the limit of 10 parameters in a batch file
- using the single word SHIFT. When this command is encountered in
- a batch file, all the parameter and marker pairings are shifted
- one unit to the left. Whatever was assigned to %0 is lost.
-
- A diagram to visualize. Before a SHIFT command is issued the
- parameters and markers might be:
-
- %0 %1 %2
- | | |
- dog cat computer
-
- After the SHIFT command we would see:
-
- %0 %1 %2
- | | |
- cat computer
-
- Notice that dog is lost, %1 becomes computer and %2 is left
- vacant unless it takes a new parameter from %3 (if %3 had a
- parameter). The effects of the SHIFT command are wide ranging
- throughout the batch file and provide great flexibility and a
- range of parameters greater than ten values.
-
- --- FOR..IN..DO --- Allows iteration (repetition) of actions
- or commands. The command is similar to a FOR...NEXT...STEP loop
- programmers use. This command lets you repeat an action several
- times.
-
- The command is rather subtle and could be thought of as a three
- part command. The syntax is:
-
- FOR %%Variable IN (Set) DO Command
-
- Let's look more closely at the three parts:
-
- FOR %%Variable IN (Set) DO Command
- ============== ======= ==========
- | | |
- part 1 part 2 part 3
-
- Translating into English this means: FOR a certain batch file
- variable withIN a SET of filenames or commands DO a certain
- action.
-
- The %%VARIABLE is a one-letter variable which must have a double
- %% prior to the letter to distinguish it from single % markers
- we have seen earlier.
-
- The SET portion of the command is always in parenthesis as
- (SET). The SET represents filenames or DOS commands you want the
- %% variable to assume while the command is executing. A space is
- used between entries. Pathnames are never allowed but wildcards
- such as *.* are acceptable. If the SET contains DOS command then
- only the %%VARIABLE is used.
-
- The COMMAND is a DOS command or batch subcommand. One or several
- of these commands will contain the %%Variable in it.
-
- Let's try an example. Pretend by you want a batch file to
- present the DOS version then clear the screen and finally issue
- the directory. We could do this in three lines by:
-
- VER
- CLS
- DIR/P
-
- However, with the command FOR..IN..DO we can do this in one
- line:
-
- FOR %%T IN (Ver cls Dir/P) DO %%T
-
- Notice how each DOS command is separated by a space. ? and * are
- NOT allowed within any command within the SET. Use a colon :
- instead of a space within the set when passing parameters to
- programs. You can issue the FOR..IN..DO batch file subcommand at
- the DOS prompt by dropping one of the percentage signs % on
- the variable. Let's move on to some practical and fairly
- interesting examples . . .
-
- ----------------------------------------------------------------
-
- BATCH FILE PROJECTS FOR YOU TO TRY!
-
- ----------------------------------------------------------------
-
- The following batch files do real work and can teach you some
- fascinating principles.
-
- To save typing each example, here's a shortcut: simply load this
- file, BATCH.TUT, from the PC-Learn disk or hard drive into your
- word processor. Next, delete the tutorial and batch files you
- don't need, keeping only the batch file lines you require. Move
- all lines of the batch file to the far left margin then save the
- batch file back to disk in plain ASCII text with a permanent
- batch file name such as CANDY.BAT, GO.BAT or PRINTER.BAT which
- you can easily remember. Feel free to change or add things to
- these batch files with your word processor since that's the
- point - batch files are flexible!
-
- Note the liberal use of the remarks or REM lines in some batch
- files to explain how things work. If you like, delete all REM
- lines to save typing time, space and speed program execution!
-
- ---- Fast freespace batch file ----
-
- This is a short but useful batch file. It reports the amount of
- freespace on a disk by using the FIND command in DOS to search
- out the line containing the word "free" in the DOS DIR command.
-
- Program name: TELLFREE.BAT
-
- ECHO OFF
- CLS
- ECHO CHECKING FOR FREE SPACE ON DISK
- DIR | FIND "free"
-
- You could modify the last line to DIR A: | FIND "free" to locate
- the free space on the A: drive. The piping symbol | , discussed
- in a previous DOS tutorial illustrates how one command (DIR) can
- "pipe" its output into the FIND command. You MUST have the DOS
- file FIND.EXE on the same disk so that the DIR command can use
- it. The word "free" is case sensitive and must MOT be typed in
- capital letters since the FIND command is case sensitive.
-
- Obviously, to use this small program, at the DOS prompt just
- type TELLFREE then press the return or enter key. You could also
- name this batch file T.BAT if you wanted to only type a
- single letter and save additional keystrokes.
-
- ---- Fast deletion batch file ----
-
- This is a short batch file with some powerful wrinkles for
- speedy file deletions. It could be modified in many ways.
-
- Program name: DB.BAT
-
- ECHO OFF
- CLS
- ECHO Ready to delete ALL files on B: drive
- ECHO Press control-break keys to abort or
- ECHO any other key to continue
- PAUSE
- REM Following line does the deleting
- ECHO Y | DEL B:*.*
- ECHO DONE!
-
- This is an odd batch file using some powerful DOS secrets. Line
- four reminds us we are about to delete all files on the B: drive
- and gives us the chance to abort using the control-break key
- combination which works to abort all batch files. The pause
- command on line six halts operations and waits for our keypress.
-
- Line eight shows the real power of DOS in a one line command
- which uses ECHO to pass the keystroke Y (meaning yes) via the
- pipe operation of DOS represented by the vertical bar |. This
- effectively means that the deletion of all files on B: drive
- represented by *.* will take place WITHOUT pausing for the
- traditional Yes/No request. The name of the batch file, DB.BAT
- reminds us that its use is to delete all files on B: drive or
- DB, for short!
-
- ---- Fast formatting batch file ----
-
- This batch file will speed your disk formatting. Its name
- F.BAT means format disks, and it gives you some choices and
- illustrates other batch file tricks.
-
- There are three ways to use it: for formatting A: drive, B:
- drive, or both A: and B: drives. Note the minimum number of
- keystrokes required and how the batch file determines your
- choice by using parameters. This batch file also requires a
- small text file called yes.txt which shows how a file can be
- used to redirect input to a DOS command in place of the
- keyboard. It is explained below. Be sure to prepare YES.TXT or
- F.BAT will not work!
-
- To start this batch file you MUST chose one of the following.
- The space between letter characters is important.
-
- To format only A: drive, at DOS prompt enter F A
- To format only B: drive, at DOS prompt enter F B
- To format both A and B drives, at DOS prompt enter F AB
-
- In the above commands, the A, B or AB will be inserted into the
- batch file in the location of the symbol %1 as noted earlier in
- this tutorial.
-
- Program name: F.BAT
-
- ECHO OFF
- CLS
- ECHO FORMATTING DISKS NOW!
- REM This batch file selects one of three choices based on input
- REM Next line begins test for one of three choices
- IF %1==A GOTO DOG
- IF %1==B GOTO CAT
- IF %1==AB GOTO MOUSE
- REM Next line forces goto end if no match is made
- GOTO end
- :DOG
- FORMAT A:<yes.txt
- GOTO end
- :CAT
- FORMAT B:<yes.txt
- GOTO end
- :MOUSE
- FORMAT A:<yes.txt
- FORMAT B:<yes.txt
- GOTO end
- :end
-
- Lines 18 and 19 provide formatting of B: immediately after
- formatting of A: is finished. A short but very powerful batch
- file.
-
- Note, how the batch file cleverly uses redirection with the
- < symbol discussed in our earlier DOS tutorial to send the
- "stored keystrokes" in the file yes.txt to the format command so
- you do NOT need to type Yes/No each time the computer formats a
- disk which is usual when using the format command. Redirection
- is a very powerful DOS operation. You will also need the file
- YES.TXT as discussed below.
-
- Program name: YES.TXT
-
- This is a very simple file. Start your word processor, DOS Edlin
- or even use the COPY CONsole command earlier. This tiny file
- contain a "y" character and two carriage returns and serves as
- an input file to take the place of the keyboard as explained
- above. It provides the format command with "simulated" keyboard
- response of Y (Yes) so the batch file above can continue.
-
- Using Copy Console command (which is one method to prepare
- YES.TXT):
-
- COPY CON YES.TXT (press enter)
- y (press enter)
- (press enter, skip to new line)
- (press enter, skip to new line)
- ^Z (press F6 to end and write file to disk)
-
- ---- Make a menu batch file project ----
-
- The next project is actually four simple batch files which work
- together to provide a "poor man's" menu program for a hard
- drive. Note the automatic switching between subdirectories
- provided by the files 1.bat, 2.bat and 3.bat. Obviously you
- could expand this to include menu choices for more options. Type
- in each batch file program and save on your hard drive. Place
- all files in the root directory of your hard drive, usually C:\
- When ready to start, simply type M, then press enter key. Notice
- how M.BAT runs one of the other three files, 1.BAT, 2.BAT or
- 3.BAT. Notice also how when those batch files are done, they
- automatically run M.BAT to return from where they began and
- again display the menu screen.
-
- Program name: M.BAT
-
- REM Third line turns off echo so commands are not repeated to
- REM the screen twice, avoids screen clutter
- ECHO OFF
- REM Next line clears the screen
- CLS
- REM Next line suggests option 1 which will run 1.bat
- ECHO PRESS 1 FOR WORD PROCESSOR
- REM Next line suggests option 2 which will run 2.bat
- ECHO PRESS 2 FOR SPREADSHEET
- REM Next line suggests option 3 which will run 3.bat
- ECHO PRESS 3 FOR DATABASE
- ECHO PRESS ENTER KEY AFTER SELECTION IS MADE
-
- Program name: 1.BAT
-
- ECHO OFF
- REM Fourth line switches to a subdirectory containing your
- REM word processor using the cd or change directory command
- CD\WP
- REM Seventh line starts your word processor, named word.exe
- REM Substitute the startup command for your word processor
- WORD
- REM Eleventh line changes out of word processing subdirectory
- REM and goes back to the root directory when word processor
- REM is finished
- CD\
- REM Final line restarts the menu program m.bat
- M
-
- Program name: 2.BAT
-
- ECHO OFF
- REM Fourth line switches to a subdirectory containing your
- REM spreadsheet using the cd or change directory command
- CD\SPREAD
- REM Seventh line starts your spreadsheet, named lotus.exe
- REM Substitute the start command for your spreadsheet
- LOTUS
- REM Eleventh line changes out of spreadsheet subdirectory
- REM and goes back to the root directory when spreadsheet
- REM is finished
- CD\
- REM Final line restarts the menu program m.bat
- M
-
- Program name: 3.BAT
-
- ECHO OFF
- REM Fourth line switches to a subdirectory containing your
- REM database using the cd or change directory command
- CD\DATABASE
- REM Seventh line starts your database, named db.exe
- REM Substitute the start command for your database
- DB
- REM Eleventh line changes out of database subdirectory
- REM and goes back to the root directory when database
- REM IS FINISHED
- CD\
- REM Final line restarts the menu program m.bat
- M
-
- ---- Printer Control Batch file ----
-
- Some of the best kept DOS secrets are fascinating. If you have a
- standard dot matrix printer connected to your computer, you can
- use simple batch files to change the typeface and other features
- your printer provides. The reference booklet which accompanied
- your printer discusses printer control codes. For example, on
- Epson compatible printers you will note in your printer book
- that "emphasized printing" has the DECIMAL control code 27 69.
- Let's write a batch file to take charge of our printer!
-
- Program name: E.BAT
-
- ECHO OFF
- CLS
- ECHO SETTING PRINTER TO EMPHASIZED MODE
- ECHO (ALT 155)(ALT 69) >PRN
- ECHO DONE
-
- The fourth line contains a secret trick. The code we need to
- send is 27 69 according to our printer book. When preparing this
- batch file with EDLIN, COPY CONsole or your word processor, you
- must send the printer control code 27 then 69 to the printer.
-
- In line four after typing the word "ECHO" then a blank space,
- hold down the ALT key then press 155 on the FAR RIGHT NUMERIC
- KEYBOARD. When done entering the number, release the ALT key.
- On most computers, the cents symbol will appear which the
- printer will accept as the "escape code 27." DO NOT type the
- left and right parenthesis marks which appear on line four: ( ),
- they are only for clarity.
-
- Next press ALT 69 which produces the E symbol. You could also
- just type capital E. Next type >PRN which sends this code
- to your printer. Note that there is NO blank space between (ALT
- 155) and (ALT 69).
-
- The code 155 is substituted for 27 but the 69 is unchanged. Why
- 155 rather than 27 for the escape code? An explanation: Printer
- control codes begin with code 128, thus escape character 27 is
- generated by using 27+128 = 155. An necessary trick for this
- batch file. We could send SEVERAL codes by adding more lines to
- the batch file to set letter quality, pica font, line spacing
- and tabs, then type the letter to the printer (ECHO LETTER.TXT>PRN)
- and finally reset the printer. Your printer book discusses these
- decimal control codes.
-
- If we wanted to send a formfeed to the printer (eject paper,)
- the printer reference book suggests control code 12, therefore
- 12+128 = 140. So the fourth line in the batch file would read
- ECHO (ALT 140) >PRN. The bell sound (decimnal code 7) is
- generated by 7+128 = 135. The batch file would change to read
- ECHO (ALT 135) >PRN.
-
- Some printer features are controlled by SINGLE control codes
- while other features are controlled by MULTIPLE escape sequence
- codes which always begin with 27 followed by additional numbers.
- Escape code 27 is always translated to ALT 155 when DOS and
- batch files transmit the printer control information. Within
- software programs the codes may use a different format: \027E
- for example.
-
- Many other printing features can be turned on using short batch
- files. For example, double strike printing uses the decimal code
- 27 71. In the batch file you could use ECHO (ALT 155)(ALT 71) >PRN.
-
- You can also turn on a COMBINATION of several features in one
- longer batch file to control several features. Just add more
- lines and codes to the batch file!
-
- To reset the printer when a printing job is finished: code 27
- 64. Search out these printer codes in your printer manual and
- let a batch file do the hard work!
-
- One of the best batch file tutorials to date was published in
- two parts in the November and December 1991 editions of PC
- Computing Magazine. Contact your library for back issues or
- contact PC Computing at Back Issues Dept, PC Computing Magazine,
- Ziff Davis, POB 53131, Boulder, CO 80322. Back issues currently
- cost $6.00 each.
-
- The bibliography/suggested reading list with PC-Learn provides
- additional reading suggestions to advance your batch file
- knowledge.
-
- Tutorial finished. Have you registered PC-Learn to receive your
- bonus disks? Registration is encouraged. Shareware works on the
- honor system! Send $25 to Seattle Scientific Photography,
- Department PCL6, PO Box 1506, Mercer Island, WA 98040. Latest
- version of PC-Learn and two bonus disks shipped promptly!
-
-
-